#pragma once

#include "Globals.h"
#include "Point.h"
#include "ColorRGB.h"

namespace game_engine { namespace open_gl 
{

// CONSTANTS

typedef enum {
    TIMES_ROMAN_10,
    TIMES_ROMAN_24,
    HELVETICA_10,
    HELVETICA_12,
    HELVETICA_18
} FontType;

/*!
 * \class GLFont2D
 * \brief 
 * \details 
 */
class GLFont2D
{
///////////////////////////////////////////////////////////////////////////////
// Attribute definition
///////////////////////////////////////////////////////////////////////////////
private:
    FontType font;
    utils::ColorRGB color;

///////////////////////////////////////////////////////////////////////////////
// Method definition
///////////////////////////////////////////////////////////////////////////////
public:
    // Constructors and destructors
    GLFont2D(void);
    GLFont2D(const FontType &f, const utils::ColorRGB &c);
    virtual ~GLFont2D(void);

    // Others
    void drawString(const utils::Point &pos, const string &msg);

    // Getters
    const FontType& getFont(void) const;
    const utils::ColorRGB& getColor(void) const;

    // Setters
    void setFont(const FontType &f);
    void setColor(const utils::ColorRGB &c);

};

}}
